Contributors: Jellejurre, JustSleightly
Avatars 3.0 Overview
Having a general understanding of how 3.0 works will help with learning how to accomplish any animation on your avatar, and leave less holes/mistakes in the workflow. The visual diagram on the right covers VRChat’s SDK functionality relatively cohesively.
- The black lines/borders highlight the basic understanding that newer creators should focus on.
- The solid gray lines indicate additional functionality Avatars 3.0 has to offer.
- The dotted light gray lines display how some components can affect others.
Each node is organized into four separate rows:
- Trigger - Different mechanisms/inputs that can be used to manipulate variables
- Variables - Set of named values that hold information
- Controller - The “brain” that controls the flow of logic based off the values of variables
- Action - The events that occur determined by the controller
Green nodes are components handled by VRChat, while blue nodes are native to the Unity Editor.
A visual diagram covering VRChat’s Avatars 3.0 animation system
Glossary
Triggers
- Expressions Menu Controls - The VRChat “Wheel” Menu often used for toggles and radial puppets as described in Expressions Menu and Parameters
- OSC - A method of using external applications to communicate with your VRChat avatar from outside the game using Open Sound Control
- Parameter Driver - A kind of VRC State Behaviours that can directly manipulate the value of an Animator Parameter
Variables
- Expression Parameters - User defined variables to be used in the Expressions Menu or synced across the VRChat network as described in Expressions Menu and Parameters
- Built-In Parameters - VRChat defined variables that are automatically handled by the network/client as described in Built-In VRC Parameters
- Avatar Dynamics Parameters - User defined variables set to be handled by Phys Bones or Contact Receivers/Senders
Controller
- Animator Parameters - Low level variables specific to Animator Controllers that may be synced or manipulated by any of the above variables or triggers
- Animator Layers - Where most of the logic is handled within Animator Controllers
Action
- Animation Clips - Animation Clips manipulate properties/values on any GameObject/Component
- State Behaviours - VRC State Behaviours perform a variety of tasks that can manipulate Animator Controllers/Avatars
Example Logic - Toggles
An example using this diagram to highlight the black lines for a fundamental understanding is as follows:
- Expressions Menu Controls - A user in VRChat opens the wheel menu and presses a control for a “Hat Toggle”
- Expression Parameters - The “Hat Toggle” control flips an expression parameter bool named “Hat” between
true
andfalse
- Animator Parameters - VRChat synchronizes all parameters named “Hat” from the Expression Parameters to all Animator Parameters
- Animator Layers - The controller switches between two states “Hat On” and “Hat Off” depending if the “Hat” parameter is
true
orfalse
- Animation Clips - The animation clip inside the “Hat On” or “Hat Off” state then enables/disables the hat
Example Logic - Gestures
An example using this diagram slightly modified to incorporate Built-In Parameters is as follows:
- Built-In Parameters - A user in VRChat moves their left fingers to conduct a hand gesture that VRChat recognizes as the parameter “GestureLeft”
- Animator Parameters - VRChat synchronizes all parameters named “GestureLeft” from the VRChat client to all Animator Parameters
- Animator Layers - The controller switches between eight states depending on the “GestureLeft” parameter
- Animation Clips - The animation clip inside that gesture’s state then moves the fingers or changes the facial expression
Last Updated: 31 March 2024 08:54:00